package br.com.webprojeto.cadastro;

import java.util.List;

import br.com.webprojeto.basicas.Fisica;
import br.com.webprojeto.cadastro.interfaces.InterfaceCadastroFisica;
import br.com.webprojeto.exception.CpfDuplicadoException;
import br.com.webprojeto.interfaces.InterfaceColecaoFisica;

public class CadastroFisica implements InterfaceCadastroFisica {

	// atributos primarios
	
	private InterfaceColecaoFisica fisica;

	// construtores
	
	public CadastroFisica(InterfaceColecaoFisica fisica) {
		super();
		this.fisica = fisica;
	}

	// metodos delegados
	
	/* (non-Javadoc)
	 * @see br.com.webprojeto.cadastro.InterfaceCadastroFisica#adicionarFisica(br.com.webprojeto.basicas.Fisica)
	 */
	@Override
	public void adicionarFisica(Fisica f) throws CpfDuplicadoException {
		
		
		if(localizarFisicaCpf(f.getCpf()) == null ){
		fisica.adicionarFisica(f);
		}else{
			CpfDuplicadoException ex = new CpfDuplicadoException(f.getCpf());
			throw ex;
		}
		
	}

	/* (non-Javadoc)
	 * @see br.com.webprojeto.cadastro.InterfaceCadastroFisica#removerFisica(long)
	 */
	@Override
	public void removerFisica(long codFisica) {
		fisica.removerFisica(codFisica);
	}

	/* (non-Javadoc)
	 * @see br.com.webprojeto.cadastro.InterfaceCadastroFisica#atualizarFisica(br.com.webprojeto.basicas.Fisica)
	 */
	@Override
	public void atualizarFisica(Fisica fis) {
		fisica.atualizarFisica(fis);
	}

	/* (non-Javadoc)
	 * @see br.com.webprojeto.cadastro.InterfaceCadastroFisica#listarFisica()
	 */
	@Override
	public List<Fisica> listarFisica() {
		return fisica.listarFisica();
	}

	/* (non-Javadoc)
	 * @see br.com.webprojeto.cadastro.InterfaceCadastroFisica#procurarFisica(long)
	 */
	@Override
	public Fisica procurarFisica(long codFisica){
		
		return fisica.procurarFisica(codFisica);
		
	}

	/* (non-Javadoc)
	 * @see br.com.webprojeto.cadastro.InterfaceCadastroFisica#localizarFisicaCpf(java.lang.String)
	 */
	@Override
	public Fisica localizarFisicaCpf(String cpf) {
		return fisica.localizarFisicaCpf(cpf);
	}
	
	
}
